Welcome to PepDocs!

PeppermintOS is a Linux distro based on Debian/DeVuan This documentation can help you get better acquainted with the operating system online support can be found here

This is Peppermint OS

CI / CD

This is the “pipeline” that we use for the Development team.

CI or Continuous Integration is the practice of automating the integration of code changes from multiple developers into a single code-base. It is a software development practice where the developers commit their work frequently into the central code repository (Codeberg). Then there are automated tools that build the newly committed code and do a code review, etc as required upon integration.

The tools we use can be found here

Why CI?

There have been scenarios when Peppermint developers, worked in isolation for an extended period of time and only merge their changes to the main branch once their work was completed. This not only makes the merging of code very difficult , prone to conflicts, and time-consuming but also results in bugs accumulating for a long time which are only identified in later stages of development. These factors make it harder to deliver updates to the system quickly.

With Continuous Integration, the peppermint developers can frequently commit to a shared common repository using CodeBerg. A continuous integration pipeline can automatically run builds, store the artifacts, run unit tests and even conduct code reviews using different tools. We can configure the CI pipeline to be triggered every time there is a commit/merge in the code-base.

Where are we going?

  • Peppermint is morphing into its own continuous delivery OS based on the Debian/Devuan stable repos….with the option to pull from testing as needed. The audience that we want to reach are both new users as well as experienced Linux users.

  • We want to try to meet that middle ground where it is easy enough to configure after install to fit new user’s needs but also not be “bloated” for the more experienced users, so that it can be configured with, little to no package removal

  • Further more the option to be non-systemd can help those users who prefer sysv init etc….

This is why it is important for the Peppermint shift to a CI/CD pipeline using DevOps culture, as it allows for innovation and the time needed to build features and improvements, by our team of developers

Peppermint OS Versioning

What build of Peppermint OS are you running

Starting with the release of Peppermint OS in Feb 2022 there is no longer any version number or build date associated with the file names of the ISO’s published. In the Mirrors we only host the most recent ISO builds all older builds are replaced automatically through our pipeline. For example:

Debian based

  • PeppermintOS-amd64.iso - This is the most recent Debian 64 bit ISO

  • PeppermintOS-i386.iso - This is the most recent Debian 32 bit ISO

Devuan based

  • PeppermintOS-Devuan_64.iso - This is the most recent Devuan 64 bit ISO

  • PeppermintOS-Devuan_32.iso - This is the most recent Devuan 32 bit ISO

If you want to know the changes that have taken place for each iteration of the build you can review the: BuildDate that is maintained here:

Yes we are based on Debian (11) and Devuan (4) and any future versions they come out with. Any updates and point releases they do will make its way into PeppermintOS automatically, if you want to see where you stand there you can run in terminal lsb_release -a

You will see something like this

  • Distributor ID: Peppermint - this is us

  • Description: Peppermint OS - this is us

  • Release: 11.4 - this is the Debian/Devuan Version

  • Codename: bullseye - this is the name

So…. according to the above that example is running PeppermintOS Based on Debian 11.4 Bullseye in this example. Essentially we constantly update as needed…… we log the changes and we base on Debian and Devuan.

Contribute to the project

There are many ways you can contribute to Peppermint, you do not need to necessarily be a developer.

  1. You can support other Pep’s on the forum

  2. You can contribute to documentation

  3. You can submit your wallpapers

  4. You can always provide feedback

  5. You can submit your ideas

  6. You can provied translations

With the Peppermint Community, there are so many innovations we can build together.

How to Contribute to PepDocs

This documentation uses sphinx. Sphinx is a tool that makes it easy to create intelligent and beautiful documentation, written by Georg Brandl and licensed under the BSD license.

All you need to get started is install sphinx to your computer you can learn how to do that using this tutorial here this tutorial also teaches you how to build your updates via sphinx.

After you get that part up and running you can then contact the Peppermint team via the forum to get started on committing to the PepDocs repository out on codeberg.org.

sphinx uses reStructuredText (reST) you can read more about that here

Tools used and custom features

ISO Builder:

  • The way the ISO is created is by using the live-build tools provided by Debian. If you are interested in learning about live-build you can click here to read the live-build manual.

  • We have chosen to be very modular so that we can make major or minor changes to the ISO as we build new features or fix issues that the community has found.

  • You can view our entire builder code out on codeberg.org by clicking here .

Welcome Screen

The welcome screen is there to help get you started with your system.

  • About will open a window that loads the about page for Peppermint OS

  • Suggested allows you to pick any of the web browsers that are in the stable repositories of Debian.

  • Pepdocs will open the Peppermint Documentation

  • Build Log will open the log that you can read to see changes

  • Community these open in SSBs to their perspective, websites.

hBlock

What is this for?

hBlock is a POSIX-compliant shell script that gets a list of domains that serve ads, tracking scripts and malware from multiple sources and creates a hosts file, among other formats, that prevents your system from connecting to them.

warning:

hBlock by default replaces the hosts file of your system consider making a backup first if you have entries you want to preserve

The default behavior of hBlock can be adjusted with multiple options. Use the –help option to see what is available

  • To enable hBlock you can open a terminal type

hblock
  • To disable hBlock you can open a terminal type

hblock -S none -D none

Kumo

What is Kumo?

Kumo is a tool that is used to manage site specific web browsing(SSB).

It uses SQLite to store the links that are used for the SSB.

Tkinter is used for the interface, this means you can run Kumo independent to whatever your desktop environment is.

Depening on your build Kumo will be using the following

  • Lua is used if running the 32 bit Flagship ISO

  • LibreWolk is used if running the 64 bit Flashship ISO

  • FireFox is used if running the loaded 64/32 ISO

Features

Kumo allows the user to create a new SSB and save it in the database. From there the user can use Kumo to launch any specific SSB stored in the database. Additionally once the SSB is created the user can delete the SSB as needed. Finally Applications can be created and stored on your stored on your menus. Becuase all linkes are stored in SQLite moving your data from one computer to nother can be done easily as needed

xDaily (xD)

Simply put, it is a semi automatic command line system updater that will also upgrade the system, by opening a terminal and type in sudo xDaily enter your password when prompted, it will clean out your cache, trim a SSD, update your icon cache and auto-remove old repos, you will be prompted by the Y/N option during the process. If there is a newer kernel version remember to reboot your computer.

You can see this Wiki for more details:

https://sourceforge.net/p/peppermintos/pepwiki/xDaily%20-%20A%20Complete%20System%20Updater/

The reason for the xDaily tool is so that a user can decide when they want to perform maint on thier system, it performs not only just updates but other system maint commands in terminal. xDaily is a tool that is generally ran manually

xDaily will update both PepTools and System Updates

xDaily GUI

The GUI does all the same things as xDaily but without the need to use the terminal.

_images/gui.png

Each section of xDaily GUI has a short explanation of what the features do.

Suggested Packages

This tool can be found in the Peppermint Hub or if you Open the Welcome screen it will be the Suggested button.

This is NOT as custom package manager to replace any of the software stores or the synaptic manager. It simply is that…….. a list of packages that the Peppermint Community voted on that they felt would be useful for a starting point for a user. That is the Software section you see the packages listed

On the Browser side lists are all the browsers that are available in the Debian/Devuan repos. The way that was decided was based on this wiki post from Debian:

Anything outside of that posting will not be included. Additionally, we steered away from the terminal browsers, as it was voted to do so. Its up to the user to determine what they want to install and how they install their browser.

Install and use nala

Many of the terminal based tools in PeppermintOS has begun to use nala. If you already have a build in-place you can install nala by running this command.

Note: Before you try to install nala make sure you have the PeppermintOS repos added to your sources list.

To check that follow these steps:

  1. In your file manager browse to /etc/apt/sources.list.d/

> If you see a file named peppermint.list you can successfull install nala

> If you DONOT see a file named peppermint.list then go look at the Add the PeppermintOS sources list section first

Once those things have been verified then you can run this command

sudo apt update && sudo apt install nala

How to’s

Add the PeppermintOS sources list

As mentioned in previous areas of this documentation all of our repo data is maintained at CodeBerg. With the PeppermintOS sources we are able to provde things that are not in the sual Debian / Devuan repos, whether it is stable or testing there are times where it can be useful to distribute packages that we create or are third party and we package them.

To add the PeppermintOS source lists follow these steps:

  1. Make a directory for the 2 .deb packages needed any where you prefer on your system

  2. In terminal cd to the new directory

  3. Run these commands to download the needed files

wget http://repo.peppermintos.com/packages/pool/main/p/pepsources/pepsources_1.0-1peppermint2_all.deb
wget http://repo.peppermintos.com/packages/pool/main/p/peppermint-keyring/peppermint-keyring_1.0-1peppermint1_all.deb
  1. Then to install the source and update run these commands

sudo dpkg -i *.deb
sudo apt update

Notes

The pepsources_1.0-1peppermint2_all.deb package has a peppermint.list file with 2 lines pointing to repo.peppermintos.com locations. The peppermint-keyring_1.0-1peppermint1_all.deb (keyring) package has the files needed to verify the authenticity of the repo and the packages.

How to use the TTK Creator Theme editor

The way that PeppermintOS adds themes to our tools is, with ttkboostrap this is a project that is maintained by israel-dryer it is a theme extension for tkinter that enables on-demand modern flat style themes inspired by Bootstrap. We use this to centralize our tkinter styling.

The TTK Creator is a tool that is shipped with ttkbootstrap that allows you to change the styles on the fly, that will provide a way for you to make the PepTools better match your overall build theme.

To use TTK Creator open the Peppermint Hub and click on the Hardware & Software tab you will see the button for TTK Creator

When you open TTK Creatore you see a screen that looks like below.

Desktop Environment Settings

Before you get started making changes….Please NOTE: Peppermint is using the default theme named darkly. You will want to backup that theme prior to making any changes.

  1. To do that in the base theme drop-down select darkly

  2. In the name field type darkly

  3. Click the Save menu option

  4. If you see the Overwrite existing theme darkly? click OK

  5. Then click Export

  6. Save that file somewhere on your computer..this is so you can reset the theme to the peppermint default theme any time.

Making tkinter Theme Changes

On the left side of the TTK Creator window you see all of the html color codes and the controls they affect that can be changed. As you make changes to the color codes you will see the affects on the demo side of the Creator window.

When you are done making all your preferred changes.

  1. You will want to make sure you set the name to darkly

  2. Click Save

  3. If you see the Overwrite existing theme darkly? click OK

To reset the theme to the default Peppermint theme.

  1. In the TTK Creator window click Import, select your file and click Open

  2. At this point your file has been imported.

  3. If you close and reopen TTK Creator and select darkly in the base theme you will see the default themes scheme.

  4. Type darkly in the name field and click Save

  5. If you see the Overwrite existing theme darkly? click OK

Your theme has been reset.